from typing import Sequence,Any,Optional
from APP.app.userprofile.models.user_info import UserInfo
from APP.database.mysql import async_db_session
from APP.config.log_conf import log
import uuid
from APP.app.userprofile.schemas.user_profile_schema import UserTag
from APP.app.userprofile.schemas.tag_schema import TagCategory,TagType
from textwrap import dedent
from APP.app.userprofile.services.agent_service import AgentService
from agno.utils.pprint import pprint_run_response

class ProfileImplicitServices:

    async def extract_implicit_tags(self, data: Sequence[UserInfo]) -> str:
        """
        根据用户隐式属性生成标签
        :param data: 用户信息列表
        :return: 用户标签列表
        """
        
        log.info(f"开始生成用户隐式标签，数据量：{len(data)}")

        ner = dedent("""
               张小明曾任职于阿里巴巴集团旗下蚂蚁科技集团，担任资深产品经理。
               在 2020-2023 年期间，他主导了 “蚂蚁财富”的智能投顾系统升级项目，该产品服务覆盖超过 3 亿用户。
               项目中，他与华为云团队合作，采用鸿蒙系统的分布式架构，成功将系统响应速度提升 40%。2022 年，他带领团队前往深圳前海自贸区，与腾讯金融科技实验室共同开发 “区块链供应链金融平台”，该平台已接入招商银行、平安银行等 20 余家金融机构。
               此外，张小明在硅谷游学期间，参与了斯坦福大学人工智能实验室的 “自然语言处理在金融风控中的应用” 课题研究，与 GoogleAI 团队工程师李娜共同发表过 3 篇技术论文。他主导的 “智慧城市数据中台”项目曾获杭州市科技创新大赛金奖，该项目为绿城集团旗下 50 余个智慧社区提供数据支撑。
            """)

        implicit_tags =await self._generate_tags(ner)
        
        return implicit_tags

    
    async def _generate_tags(self, data:str) -> str:

        implicit_tags = []
        # 调用NER Agent进行实体识别
        await self._create_ner_tags(data)

        return '测试'
    
    @staticmethod
    async def _create_ner_tags(ner_context: str):

        response = await AgentService.ner_agent(ner_context)

        print(response)
        


        


ProfileImplicitService:ProfileImplicitServices = ProfileImplicitServices()


